Introducción
Interacción entre dids
En esta compleja red de comunicación, los DIDs actúan como identificadores únicos que permiten a los sujetos tener control total y exclusivo sobre su propia identidad en línea. A través de un conjunto de tecnologías como DID Document, verifiable credentials (credenciales verificables) y Decentralized Web Nodes (nodos web descentralizados), los DIDs interactúan para habilitar un intercambio seguro y confiable de información personal entre diferentes identidades. En esta sección, exploraremos cómo los DIDs se comunican, resuelven y establecen conexiones para brindar una experiencia autónoma y protegida en el vasto mundo digital.
Decentralized Web Node
En español se traduce como "Nodo Web Descentralizado". Un DWN funciona como un buzón o punto de interacción para recibir y almacenar mensajes en un entorno descentralizado. Su función principal es permitir la comunicación y el intercambio de datos entre diferentes identidades y agentes. Al resolver el DID Document asociado a un DID, se puede descubrir la ubicación del DWN de un individuo y enviarle mensajes de manera segura y confiable.
El funcionamiento de un DWN implica varios aspectos:
Resolución de DIDs: Un DWN tiene la capacidad de resolver DIDs (Identificadores Descentralizados) y encontrar el DID Document asociado a un sujeto. Al resolver un DID, el DWN obtiene la información necesaria para establecer una conexión con el propietario del DID y comunicarse con él.
Recepción y almacenamiento de mensajes: El DWN actúa como un buzón o punto de interacción para recibir y almacenar mensajes enviados por otros actores del ecosistema. Los mensajes pueden incluir solicitudes de creación de credenciales, envío de credenciales o solicitudes para verificar credenciales.
Seguridad y autenticación: El DWN asegura que los mensajes recibidos sean auténticos y no hayan sido alterados durante la transmisión. Esto se logra a través de técnicas de cifrado y firmado criptográfico que garantizan la integridad y autenticidad de los mensajes.
Comunicación punto a punto: Una vez que el DWN resuelve el DID Document asociado a un DID, puede establecer una comunicación punto a punto con el propietario del DID. Esto permite una interacción directa y segura entre diferentes identidades y agentes dentro del ecosistema.
En resumen, un DWN actúa como un intermediario confiable para la comunicación y el intercambio de datos en sistemas descentralizados, asegurando la privacidad, seguridad y autenticidad de las interacciones entre las diferentes identidades en el contexto de la Identidad Auto-soberana.
WACI-DIDComm
WACI-DIDComm es una combinación de dos tecnologías relacionadas: el protocolo WACI (Wallet and Credential Interaction) y DIDComm (Decentralized Identity Communication).
WACI es un protocolo que define cómo se emiten, presentan y verifican las credenciales verificables en un entorno descentralizado. Facilita la interacción entre billeteras digitales y las credenciales verificables, permitiendo a los usuarios presentar sus credenciales de forma segura para demostrar la autenticidad de sus datos en diferentes contextos. WACI define las normas y especificaciones para que las billeteras digitales interactúen con las credenciales verificables y realicen diferentes operaciones, como solicitudes de creación de credenciales, presentación de credenciales y verificación de identidad.
DIDComm es un esquema de encriptación utilizado para establecer canales de comunicación seguros y confiables entre diferentes identidades y agentes en un entorno descentralizado. DIDComm se basa en DIDs (Identificadores Descentralizados) y claves públicas y privadas asociadas a ellos para asegurar la privacidad, seguridad y autenticidad de las interacciones entre las diferentes partes. Antes de establecer una comunicación, las partes involucradas intercambian sus claves públicas para que cada una pueda encriptar mensajes que solo puedan ser desencriptados por la clave privada correspondiente.
WACI-DIDComm, por lo tanto, combina el protocolo WACI con el esquema de encriptación DIDComm para permitir una interacción segura y confiable. Utiliza DIDComm para establecer canales de comunicación seguros entre las partes y WACI para llevar a cabo las operaciones relacionadas con las credenciales verificables, como la presentación y verificación de identidad.
DID Document Services
La sección "services" en un DID Document (Documento DID) es una parte importante que permite definir servicios adicionales asociados al DID. Estos servicios pueden ser cualquier cosa que esté relacionada con el sujeto del DID y pueda ser útil para su interacción en línea.
Al incluir información sobre servicios asociados, se facilita la interacción y la comunicación entre el sujeto del DID y otras partes.
En el DID Document, se puede especificar un servicio que apunte a un DWN. Sin embargo, esto se hace mediante la inclusión de un endpoint URL (un enlace) en la sección "service" que indica dónde se encuentra el DWN y cómo se puede acceder a él. De esta manera, la comunicación con el DWN se logra resolviendo el DID Document y utilizando la información de los servicios proporcionados en él.
{
"id": "did:example:alice",
"service": [{
"id":"#dwn",
"type": "DecentralizedWebNode",
"serviceEndpoint": {
"nodes": ["did:example:host", "https://dwn.example.com"]
}
}]
}
Flujo de emisión de Credencial Verificable
Para garantizar la privacidad y autenticidad en la comunicación, es esencial que los mensajes cuenten con una capa de transporte adecuada. Para lograr esto, recurrimos al servicio DWN, el cual es una solución descentralizada e interoperable. Este servicio se basa en reglas específicas que permiten responder a los requests enviando mensajes al DID que tenga configurado como servicio ese DWN.
En el siguiente ejemplo, se presenta un flujo para obtener credenciales. Por un lado, tenemos a una persona o usuario con su wallet que desea obtener una credencial verificable. Por otro lado, está el portal web, encargado de emitir dicha credencial.
Cuando un usuario quiere comunicarse con el portal, primero escanea un código QR para obtener el DID del portal y comenzar la comunicación. Para esto último, resuelve el DID Document para conocer el DWN, el cual está configurado como un servicio en la sección "services" del DID Document de la contraparte.
La persona envía el mensaje al DWN del portal, y este servicio se encarga de leer e interpretar los mensajes recibidos. Para ello, utiliza el WACI Interpreter, ya que no todos los mensajes del DWN son de tipo WACI. Si el mensaje puede ser interpretado, el DWN lo pasa al interpreter, de lo contrario, puede descartarlo.
El portal recibe el mensaje de WACI y entiende que se inicia un flujo de credenciales. Procesa el mensaje, lo envía al WACI interpreter y responde. Para responder, lee el DID Document de la persona, levanta su servicio de DWN y envía el mensaje que corresponda en esa etapa del flujo de WACI.
Es importante que los mensajes enviados al DWN estén cifrados con DIDComm para evitar que terceros maliciosos intercepten la comunicación con la otra parte. DIDComm tiene la cualidad de cifrar y autenticar el mensaje, asegurando que el DID del otro lado sea auténtico y tenga la clave privada correspondiente.
Así, con este sistema de capas y servicios, aseguramos una comunicación segura y confiable en el manejo de datos sensibles y verificables.